<!DOCTYPE html>
<html lang="en">
  <head>
    <title>
        MonggoDB-1 - rulerLwx Blog
      </title>
        <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
      content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-transform" />
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="format-detection" content="telephone=no,email=no,adress=no">
    
    <meta name="theme-color" content="#000000" />
    
    <meta http-equiv="window-target" content="_top" />
    
    
    <meta name="description" content="简介 文章评论数据分析 文章评论两项功能存在以下特点： 数据量大 写入操作频繁 价值较低 对于这样的数据，我们更适合使用MongoDB来实现数据的存储 什" />
    <meta name="generator" content="Hugo 0.73.0 with theme pure" />
    <title>MonggoDB-1 - rulerLwx Blog</title>
    
    
    <link rel="stylesheet" href="https://rulerLwx.gitee.io/css/style.min.c4bc7071f132c964c2116bca53b392933f377e5ca7b7051ed245187c621a2d3e.css">
    
    <link rel="stylesheet" href="https://cdn.staticfile.org/highlight.js/9.15.10/styles/github.min.css" async>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.4.2/tocbot.css" async>
    <meta property="og:title" content="MonggoDB-1" />
<meta property="og:description" content="简介 文章评论数据分析 文章评论两项功能存在以下特点： 数据量大 写入操作频繁 价值较低 对于这样的数据，我们更适合使用MongoDB来实现数据的存储 什" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://rulerLwx.gitee.io/2020/07/mongodb-1/" />
<meta property="article:published_time" content="2020-07-03T18:58:47+08:00" />
<meta property="article:modified_time" content="2020-07-03T18:58:47+08:00" />
<meta itemprop="name" content="MonggoDB-1">
<meta itemprop="description" content="简介 文章评论数据分析 文章评论两项功能存在以下特点： 数据量大 写入操作频繁 价值较低 对于这样的数据，我们更适合使用MongoDB来实现数据的存储 什">
<meta itemprop="datePublished" content="2020-07-03T18:58:47&#43;08:00" />
<meta itemprop="dateModified" content="2020-07-03T18:58:47&#43;08:00" />
<meta itemprop="wordCount" content="3739">



<meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="MonggoDB-1"/>
<meta name="twitter:description" content="简介 文章评论数据分析 文章评论两项功能存在以下特点： 数据量大 写入操作频繁 价值较低 对于这样的数据，我们更适合使用MongoDB来实现数据的存储 什"/>

    <!--[if lte IE 9]>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/classlist/1.1.20170427/classList.min.js"></script>
      <![endif]-->

    <!--[if lt IE 9]>
        <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
      <![endif]-->
  </head>

  
  

  <body class="main-center theme-black" itemscope itemtype="http://schema.org/WebPage"><header class="header" itemscope itemtype="http://schema.org/WPHeader">
    <div class="slimContent">
      <div class="navbar-header">
        <div class="profile-block text-center">
          <a id="avatar" href="https://gitee.com/rulerLwx" target="_blank">
            <img class="img-circle img-rotate" src="https://rulerLwx.gitee.io/avatar.png" width="200" height="200">
          </a>
          <h2 id="name" class="hidden-xs hidden-sm">rulerLwx</h2>
          <h3 id="title" class="hidden-xs hidden-sm hidden-md">thinking...</h3>
          <small id="location" class="text-muted hidden-xs hidden-sm"><i class="icon icon-map-marker"></i>Guangzhou, China</small>
        </div><div class="search" id="search-form-wrap">
    <form class="search-form sidebar-form">
        <div class="input-group">
            <input type="text" class="search-form-input form-control" placeholder="Search" />
            <span class="input-group-btn">
                <button type="submit" class="search-form-submit btn btn-flat" onclick="return false;"><i
                        class="icon icon-search"></i></button>
            </span>
        </div>
        <div class="ins-search">
            <div class="ins-search-mask"></div>
            <div class="ins-search-container">
                <div class="ins-input-wrapper">
                    <input type="text" class="ins-search-input" placeholder="Type something..."
                        x-webkit-speech />
                    <button type="button" class="close ins-close ins-selectable" data-dismiss="modal"
                        aria-label="Close"><span aria-hidden="true">×</span></button>
                </div>
                <div class="ins-section-wrapper">
                    <div class="ins-section-container"></div>
                </div>
            </div>
        </div>
    </form>
</div>
        <button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target="#main-navbar" aria-controls="main-navbar" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
      </div>
      <nav id="main-navbar" class="collapse navbar-collapse" itemscope itemtype="http://schema.org/SiteNavigationElement" role="navigation">
        <ul class="nav navbar-nav main-nav">
            <li class="menu-item menu-item-home">
                <a href="/">
                    <i class="icon icon-home-fill"></i>
                  <span class="menu-title">Home</span>
                </a>
            </li>
            <li class="menu-item menu-item-archives">
                <a href="/posts/">
                    <i class="icon icon-archives-fill"></i>
                  <span class="menu-title">Archives</span>
                </a>
            </li>
            <li class="menu-item menu-item-categories">
                <a href="/categories/">
                    <i class="icon icon-folder"></i>
                  <span class="menu-title">Categories</span>
                </a>
            </li>
            <li class="menu-item menu-item-tags">
                <a href="/tags/">
                    <i class="icon icon-tags"></i>
                  <span class="menu-title">Tags</span>
                </a>
            </li>
            <li class="menu-item menu-item-about">
                <a href="/about/">
                    <i class="icon icon-cup-fill"></i>
                  <span class="menu-title">About</span>
                </a>
            </li>
        </ul>
      </nav>
    </div>
  </header>

<aside class="sidebar" itemscope itemtype="http://schema.org/WPSideBar">
  <div class="slimContent">
    
      <div class="widget">
    <h3 class="widget-title">Board</h3>
    <div class="widget-body">
        <div id="board">
            <div class="content">enjoy~
            </div>
        </div>
    </div>
</div>

      <div class="widget">
    <h3 class="widget-title"> Categories</h3>
    <div class="widget-body">
        <ul class="category-list">
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/java-framework/" class="category-list-link">java-framework</a><span class="category-list-count">38</span></li>
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/java-front-end/" class="category-list-link">java-front-end</a><span class="category-list-count">11</span></li>
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/java-se/" class="category-list-link">java-se</a><span class="category-list-count">21</span></li>
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/java-senior/" class="category-list-link">java-senior</a><span class="category-list-count">4</span></li>
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/linux/" class="category-list-link">linux</a><span class="category-list-count">13</span></li>
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/tools/" class="category-list-link">tools</a><span class="category-list-count">1</span></li>
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/%E6%8A%80%E6%9C%AF%E6%9D%82%E7%83%A9/" class="category-list-link">技术杂烩</a><span class="category-list-count">4</span></li>
            <li class="category-list-item"><a href="https://rulerLwx.gitee.io/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/" class="category-list-link">数据库</a><span class="category-list-count">15</span></li>
        </ul>
    </div>
</div>
      <div class="widget">
    <h3 class="widget-title"> Tags</h3>
    <div class="widget-body">
        <ul class="tag-list">
            
            
            <li class="tag-list-item"><a href="https://rulerLwx.gitee.io/tags/jvm/" class="tag-list-link">jvm</a><span
                    class="tag-list-count">1</span></li>
            
            
            <li class="tag-list-item"><a href="https://rulerLwx.gitee.io/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/" class="tag-list-link">多线程</a><span
                    class="tag-list-count">2</span></li>
            
            
            <li class="tag-list-item"><a href="https://rulerLwx.gitee.io/tags/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B/" class="tag-list-link">网络编程</a><span
                    class="tag-list-count">3</span></li>
            
        </ul>

    </div>
</div>
      
<div class="widget">
    <h3 class="widget-title">Recent Posts</h3>
    <div class="widget-body">
        <ul class="recent-post-list list-unstyled no-thumbnail">
            <li>
                <div class="item-inner">
                    <p class="item-title">
                        <a href="https://rulerLwx.gitee.io/2020/07/%E8%87%AA%E5%B7%B1%E5%8A%A8%E6%89%8B%E4%B8%80%E6%89%B9%E9%87%8F%E7%A7%BB%E5%8A%A8%E9%87%8D%E5%91%BD%E5%90%8D%E6%96%87%E4%BB%B6/" class="title">自己动手（一）——批量移动、重命名文件</a>
                    </p>
                    <p class="item-date">
                        <time datetime="2020-07-27 17:50:02 &#43;0800 CST" itemprop="datePublished">2020-07-27</time>
                    </p>
                </div>
            </li>
            <li>
                <div class="item-inner">
                    <p class="item-title">
                        <a href="https://rulerLwx.gitee.io/2020/07/%E5%85%B3%E4%BA%8Einteger%E7%9A%84-128~127%E7%BC%93%E5%AD%98/" class="title">关于Integer的 -128~127缓存</a>
                    </p>
                    <p class="item-date">
                        <time datetime="2020-07-11 16:56:21 &#43;0800 CST" itemprop="datePublished">2020-07-11</time>
                    </p>
                </div>
            </li>
            <li>
                <div class="item-inner">
                    <p class="item-title">
                        <a href="https://rulerLwx.gitee.io/2020/07/%E8%B7%A8%E5%9F%9F%E9%97%AE%E9%A2%98/" class="title">跨域问题</a>
                    </p>
                    <p class="item-date">
                        <time datetime="2020-07-08 22:41:12 &#43;0800 CST" itemprop="datePublished">2020-07-08</time>
                    </p>
                </div>
            </li>
            <li>
                <div class="item-inner">
                    <p class="item-title">
                        <a href="https://rulerLwx.gitee.io/2020/07/%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/" class="title">个人博客搭建</a>
                    </p>
                    <p class="item-date">
                        <time datetime="2020-07-05 18:58:47 &#43;0800 CST" itemprop="datePublished">2020-07-05</time>
                    </p>
                </div>
            </li>
            <li>
                <div class="item-inner">
                    <p class="item-title">
                        <a href="https://rulerLwx.gitee.io/2020/07/mongodb-1/" class="title">MonggoDB-1</a>
                    </p>
                    <p class="item-date">
                        <time datetime="2020-07-03 18:58:47 &#43;0800 CST" itemprop="datePublished">2020-07-03</time>
                    </p>
                </div>
            </li>
        </ul>
    </div>
</div>
  </div>
</aside>

    
    
<aside class="sidebar sidebar-toc collapse" id="collapseToc" itemscope itemtype="http://schema.org/WPSideBar">
  <div class="slimContent">
    <h4 class="toc-title">Catalogue</h4>
    <nav id="toc" class="js-toc toc">

    </nav>
  </div>
</aside>
<main class="main" role="main"><div class="content">
  <article id="-" class="article article-type-" itemscope
    itemtype="http://schema.org/BlogPosting">
    
    <div class="article-header">
      <h1 itemprop="name">
  <a
    class="article-title"
    href="/2020/07/mongodb-1/"
    >MonggoDB-1</a
  >
</h1>

      <div class="article-meta">
        
<span class="article-date">
  <i class="icon icon-calendar-check"></i>&nbsp;
<a href="https://rulerLwx.gitee.io/2020/07/mongodb-1/" class="article-date">
  <time datetime="2020-07-03 18:58:47 &#43;0800 CST" itemprop="datePublished">2020-07-03</time>
</a>
</span>
<span class="article-category">
  <i class="icon icon-folder"></i>&nbsp;
  <a class="article-category-link" href="/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/"> 数据库 </a>
</span>

        <span class="post-comment"><i class="icon icon-comment"></i>&nbsp;<a href="/2020/07/mongodb-1/#comments"
            class="article-comment-link">Comments</a></span>
		<span class="post-wordcount hidden-xs" itemprop="wordCount">Word Count: 3739words</span>
		<span class="post-readcount hidden-xs" itemprop="timeRequired">Read Count: 8minutes </span>
      </div>
    </div>
    <div class="article-entry marked-body js-toc-content" itemprop="articleBody">
      <h1 id="简介">简介</h1>
<h2 id="文章评论数据分析">文章评论数据分析</h2>
<p>文章评论两项功能存在以下特点：</p>
<ul>
<li>数据量大</li>
<li>写入操作频繁</li>
<li>价值较低</li>
</ul>
<p>对于这样的数据，我们更适合使用MongoDB来实现数据的存储</p>
<h2 id="什么是mongodb">什么是MongoDB</h2>
<p>MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。</p>
<p>MongoDB是一个介于关系数据库和非关系数据库之间的产品，是非关系数据库当中功能最丰富，最像关系数据库的。它支持的数据结构非常松散，是类似json的bson格式，因此可以存储比较复杂的数据类型</p>
<h2 id="体系结构">体系结构</h2>
<p>MongoDB 的逻辑结构是一种层次结构。主要由：文档(document)、集合(collection)、数据库(database)这三部分组成的。</p>
<ol>
<li>MongoDB 的文档（document），相当于关系数据库中的一行记录。</li>
<li>多个文档组成一个集合（collection），相当于关系数据库的表。</li>
<li>多个集合（collection），逻辑上组织在一起，就是数据库（database）。</li>
<li>一个 MongoDB 实例支持多个数据库（database）。</li>
</ol>
<table>
<thead>
<tr>
<th>MongoDb</th>
<th>关系型数据库Mysql</th>
</tr>
</thead>
<tbody>
<tr>
<td>数据库(databases)</td>
<td>数据库(databases)</td>
</tr>
<tr>
<td>集合(collections)</td>
<td>表(table)</td>
</tr>
<tr>
<td>文档(document)</td>
<td>行(row)</td>
</tr>
</tbody>
</table>
<h2 id="数据类型">数据类型</h2>
<table>
<thead>
<tr>
<th>数据类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>String</td>
<td>字符串。存储数据常用的数据类型。在 MongoDB 中，<strong>UTF-8</strong> 编码的字符串才是合法的。</td>
</tr>
<tr>
<td>Integer</td>
<td>整型数值。用于存储数值。根据你所采用的服务器，可分为 32 位或 64 位。</td>
</tr>
<tr>
<td>Boolean</td>
<td>布尔值。用于存储布尔值（真/假）。</td>
</tr>
<tr>
<td>Double</td>
<td>双精度浮点值。用于存储浮点值。</td>
</tr>
<tr>
<td>Array</td>
<td>用于将数组或列表或多个值存储为一个键。</td>
</tr>
<tr>
<td>Timestamp</td>
<td>时间戳。记录文档修改或添加的具体时间。</td>
</tr>
<tr>
<td>Object</td>
<td>用于内嵌文档。</td>
</tr>
<tr>
<td>Null</td>
<td>用于创建空值。</td>
</tr>
<tr>
<td>Date</td>
<td>日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间：创建 Date 对象，传入年月日信息。</td>
</tr>
<tr>
<td>Object ID</td>
<td>对象 ID。用于创建文档的 ID。</td>
</tr>
<tr>
<td>Binary Data</td>
<td>二进制数据。用于存储二进制数据。</td>
</tr>
<tr>
<td>Code</td>
<td>代码类型。用于在文档中存储 JavaScript 代码。</td>
</tr>
<tr>
<td>Regular expression</td>
<td>正则表达式类型。用于存储正则表达式。</td>
</tr>
</tbody>
</table>
<p>特殊说明：</p>
<ol>
<li>
<p>ObjectId</p>
<p>ObjectId 类似唯一主键，可以很快的去生成和排序，包含 <strong>12 bytes</strong>，含义是：</p>
</li>
</ol>
<ul>
<li>前 4 个字节表示创建 unix 时间戳，格林尼治时间 UTC 时间，比北京时间晚了 8 个小时</li>
<li>接下来的 3 个字节是机器标识码</li>
<li>紧接的两个字节由进程 id 组成 PID</li>
<li>最后三个字节是随机数</li>
</ul>
<p><img src="https://gitee.com/leafsing/pic/raw/master/img/20200709021954.png" alt=""></p>
<p>MongoDB 中存储的文档必须有一个 <strong>_id</strong>键。这个键的值可以是任何类型的，默认是个 ObjectId 对象</p>
<ol start="2">
<li>
<p>时间戳</p>
<p>BSON 有一个特殊的时间戳类型，与普通的日期类型不相关。时间戳值是一个 64 位的值。其中：</p>
</li>
</ol>
<ul>
<li>
<p>前32位是一个 time_t 值【与Unix新纪元（1970年1月1日）相差的秒数】</p>
</li>
<li>
<p>后32位是在某秒中操作的一个递增的序数</p>
<p>在单个 mongod 实例中，时间戳值通常是唯一的。</p>
</li>
</ul>
<ol start="3">
<li>
<p>日期</p>
<p>表示当前距离 Unix新纪元（1970年1月1日）的毫秒数。日期类型是有符号的, 负数表示 1970 年之前的日期。</p>
</li>
</ol>
<p>总结-关键词： UTF-8，12byte，_id</p>
<p><strong>ObjectId 尽量使用系统自动生成，不用自己指定或生成的</strong></p>
<h1 id="基本使用">基本使用</h1>
<h2 id="安装">安装</h2>
<p>思路：用windows上的mongo客户端连接docker上的mongo服务端。故而要先安装windows再安装linux上的。</p>
<p>注意：这样做的缺点，window与linux上的mongo版本要相同，否则连不上。</p>
<hr>
<ol>
<li>windows安装</li>
</ol>
<p>安装后，在安装目录中主要常用两个，mongo.exe是客户端，mongod.exe是服务端。</p>
<p>使用mongo.exe连接windows/linux的服务端。</p>
<p>启动服务端：</p>
<ul>
<li>创建一个文件夹d:\data，用于存放数据的目录data</li>
<li>打开命令行窗口，执行以下命令：<code>mongod --dbpath=D:\data -port 8989</code>，MongoDB的默认端口是27017</li>
<li>退出：<code>exit</code></li>
</ul>
<hr>
<ol start="2">
<li>docker安装</li>
</ol>
<p>在Linux虚拟机中创建mongo容器：<code>docker run -id --name mongo -p 27017:27017 mongo</code></p>
<p>在Window命令行窗口出入登录命令：<code>mongo 192.168.200.128</code></p>
<hr>
<p>我的做法：docker安装了4.2.8的mongo</p>
<ul>
<li><code># docker exec -it containerId /bin/bash</code> 进入mongo容器</li>
<li><code># mongo 127.0.0.1</code> 执行容器自身的客户端</li>
</ul>
<h2 id="常用命令">常用命令</h2>
<h3 id="选择和创建数据库">选择和创建数据库</h3>
<p>选择和创建数据库的语法格式：</p>
<pre><code>use 数据库名称
</code></pre>
<p>如果数据库存在则选择该数据库，如果数据库不存在则自动创建。</p>
<p>以下语句创建commentdb数据库：</p>
<pre><code>use commentdb
</code></pre>
<p>查看数据库：</p>
<pre><code>show dbs
</code></pre>
<p>查看集合,需要先选择数据库后，插入数据之后，才能查看该数据库的集合：</p>
<pre><code>show collections
</code></pre>
<h3 id="插入与查询文档">插入与查询文档</h3>
<p>选择数据库后，使用集合来对文档进行操作，插入文档语法格式：</p>
<pre><code>db.集合名称.insert(数据);
</code></pre>
<p>插入以下测试数据：</p>
<pre><code>db.comment.insert({content:&quot;十次方课程&quot;,userid:&quot;1011&quot;})
</code></pre>
<p>查询集合的语法格式：</p>
<pre><code>db.集合名称.find()
</code></pre>
<p>查询spit集合的所有文档，输入以下命令：</p>
<pre><code>db.comment.find()
</code></pre>
<blockquote>
<p>发现文档会有一个叫_id的字段，这个相当于我们原来关系数据库中表的主键，当你在插入文档记录时没有指定该字段，MongoDB会自动创建，其类型是ObjectID类型。如果我们在插入文档记录时指定该字段也可以，其类型可以是ObjectID类型，也可以是MongoDB支持的任意类型。</p>
</blockquote>
<p>输入以下测试语句:</p>
<pre><code>db.comment.insert({_id:&quot;1&quot;,content:&quot;到底为啥出错&quot;,userid:&quot;1012&quot;,thumbup:2020});
db.comment.insert({_id:&quot;2&quot;,content:&quot;加班到半夜&quot;,userid:&quot;1013&quot;,thumbup:1023});
db.comment.insert({_id:&quot;3&quot;,content:&quot;手机流量超了咋办&quot;,userid:&quot;1013&quot;,thumbup:111});
db.comment.insert({_id:&quot;4&quot;,content:&quot;坚持就是胜利&quot;,userid:&quot;1014&quot;,thumbup:1223});
</code></pre>
<p>按一定条件来查询，比如查询userid为1013的记录，只要在find()中添加参数即可，参数也是json格式，如下：</p>
<pre><code>db.comment.find({userid:'1013'})
</code></pre>
<p>只需要返回符合条件的第一条数据，我们可以使用findOne命令来实现：</p>
<pre><code>db.comment.findOne({userid:'1013'})
</code></pre>
<p>返回指定条数的记录，可以在find方法后调用limit来返回结果，例如：</p>
<pre><code>db.comment.find().limit(2)
</code></pre>
<h3 id="修改与删除文档">修改与删除文档</h3>
<p>修改文档的语法结构：</p>
<pre><code>db.集合名称.update(条件,修改后的数据)
</code></pre>
<p>修改_id为1的记录，点赞数为1000，输入以下语句：</p>
<pre><code>db.comment.update({_id:&quot;1&quot;},{thumbup:1000})
</code></pre>
<p>执行后发现，这条文档除了thumbup字段其它字段都不见了。为了解决这个问题，我们需要使用修改器$set来实现，命令如下：</p>
<pre><code>db.comment.update({_id:&quot;2&quot;},{$set:{thumbup:2000}})
</code></pre>
<hr>
<p>删除文档的语法结构：</p>
<pre><code>db.集合名称.remove(条件)
</code></pre>
<p>以下语句可以将数据全部删除，慎用~</p>
<pre><code>db.comment.remove({})
</code></pre>
<p>删除条件可以放到大括号中，例如删除thumbup为1000的数据，输入以下语句：</p>
<pre><code>db.comment.remove({thumbup:1000})
</code></pre>
<h3 id="统计条数">统计条数</h3>
<p>统计记录条件使用count()方法。以下语句统计spit集合的记录数：</p>
<pre><code>db.comment.count()
</code></pre>
<p>按条件统计 ，例如统计userid为1013的记录条数：</p>
<pre><code>db.comment.count({userid:&quot;1013&quot;})
</code></pre>
<h3 id="模糊查询">模糊查询</h3>
<p>MongoDB的模糊查询是通过正则表达式的方式实现的。</p>
<p>模糊查询格式为：</p>
<pre><code>/模糊查询字符串/
</code></pre>
<p>查询评论内容包含“流量”的所有文档（content 是字段名），代码如下：</p>
<pre><code>db.comment.find({content:/流量/})
</code></pre>
<p>查询评论内容中以“加班”开头的，代码如下：</p>
<pre><code>db.comment.find({content:/^加班/})
</code></pre>
<h3 id="大于-小于-不等于">大于 小于 不等于</h3>
<p>&lt;, &lt;=, &gt;, &gt;= 这个操作符也是很常用的，格式如下:</p>
<pre><code>db.集合名称.find({ &quot;field&quot; : { $gt: value }}) // 大于: field &gt; value
db.集合名称.find({ &quot;field&quot; : { $lt: value }}) // 小于: field &lt; value
db.集合名称.find({ &quot;field&quot; : { $gte: value }}) // 大于等于: field &gt;= value
db.集合名称.find({ &quot;field&quot; : { $lte: value }}) // 小于等于: field &lt;= value
db.集合名称.find({ &quot;field&quot; : { $ne: value }}) // 不等于: field != value
</code></pre>
<p>查询评论点赞数大于1000的记录：</p>
<pre><code>db.comment.find({thumbup:{$gt:1000}})
</code></pre>
<h3 id="包含与不包含">包含与不包含</h3>
<p>包含使用$in操作符</p>
<p>查询评论集合中userid字段包含1013和1014的文档：</p>
<pre><code>db.comment.find({userid:{$in:[&quot;1013&quot;,&quot;1014&quot;]}})
</code></pre>
<p>不包含使用$nin操作符</p>
<p>查询评论集合中userid字段不包含1013和1014的文档：</p>
<pre><code>db.comment.find({userid:{$nin:[&quot;1013&quot;,&quot;1014&quot;]}})
</code></pre>
<h3 id="条件连接">条件连接</h3>
<p>我们如果需要查询同时满足两个以上条件，需要使用$and操作符将条件进行关联（相当于SQL的and）。格式为：</p>
<pre><code>$and:[ {条件},{条件},{条件} ]
</code></pre>
<p>查询评论集合中thumbup大于等于1000 并且小于2000的文档：</p>
<pre><code>db.comment.find({$and:[ {thumbup:{$gte:1000}} ,{thumbup:{$lt:2000} }]})
</code></pre>
<p>如果两个以上条件之间是或者的关系，我们使用操作符进行关联，与前面and的使用方式相同，格式为：</p>
<pre><code>$or:[ {条件},{条件},{条件} ]
</code></pre>
<p>查询评论集合中userid为1013，或者点赞数小于2000的文档记录：</p>
<pre><code>db.comment.find({$or:[ {userid:&quot;1013&quot;} ,{thumbup:{$lt:2000} }]})
</code></pre>
<h3 id="列值增长">列值增长</h3>
<p>对某列值在原有值的基础上进行增加（正数）或减少（负数），可以使用$inc运算符：</p>
<pre><code>db.comment.update({_id:&quot;2&quot;},{$inc:{thumbup:1}})
</code></pre>
<h2 id="可视化工具robomongo">可视化工具robomongo</h2>
<p>Mongodb有很多可视化工具，这里我们使用robomongo，可以访问官网：https://robomongo.org/</p>
<p><img src="https://gitee.com/leafsing/pic/raw/master/img/20200709022333.png" alt=""></p>
<p>我们可以看到有两个版本Studio 3T和Robo 3T</p>
<p>Studio 3T是一个功能很强大的收费版。。。</p>
<p>Robo 3T前身就是Robomongo，是一个免费的可视化工具，我们使用他可以很轻松的进行Mongodb的管理。</p>

    </div>
    <div class="article-footer">
<blockquote class="mt-2x">
  <ul class="post-copyright list-unstyled">
    <li class="post-copyright-link hidden-xs">
      <strong>Permalink: </strong>
      <a href="https://rulerLwx.gitee.io/2020/07/mongodb-1/" title="MonggoDB-1" target="_blank" rel="external">https://rulerLwx.gitee.io/2020/07/mongodb-1/</a>
    </li>
    <li class="post-copyright-license">
      <strong>License：</strong><a href="http://creativecommons.org/licenses/by/4.0/deed.zh" target="_blank" rel="external">CC BY 4.0 CN</a>
    </li>
  </ul>
</blockquote>

<div class="panel panel-default panel-badger">
  <div class="panel-body">
    <figure class="media">
      <div class="media-left">
        <a href="https://gitee.com/rulerLwx" target="_blank" class="img-burn thumb-sm visible-lg">
          <img src="https://rulerLwx.gitee.io/avatar.png" class="img-rounded w-full" alt="">
        </a>
      </div>
      <div class="media-body">
        <h3 class="media-heading"><a href="https://gitee.com/rulerLwx" target="_blank"><span class="text-dark">rulerLwx</span><small class="ml-1x">thinking...</small></a></h3>
        <div>Good Good Study, Day Day Up~</div>
      </div>
    </figure>
  </div>
</div>
    </div>
  </article>
<section id="comments">
    <div id="vcomments"></div>
</section>

</div><nav class="bar bar-footer clearfix" data-stick-bottom>
    <div class="bar-inner">
        <ul class="pager pull-left">
            <li class="prev">
                <a href="https://rulerLwx.gitee.io/2020/07/mongodb-2-mongodb-driver/" title="MonggoDB-2"><i
                        class="icon icon-angle-left"
                        aria-hidden="true"></i><span>&nbsp;&nbsp;Older</span></a>
            </li>
            <li class="next">
                <a href="https://rulerLwx.gitee.io/2020/07/%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/"
                    title="个人博客搭建"><span>Newer&nbsp;&nbsp;</span><i
                        class="icon icon-angle-right" aria-hidden="true"></i></a>
            </li>
            
            <li class="toggle-toc">
                <a class="toggle-btn collapsed" data-toggle="collapse" href="#collapseToc" aria-expanded="false"
                    title="Catalogue" role="button">
                    <span>[&nbsp;</span><span>Catalogue</span>
                    <i class="text-collapsed icon icon-anchor"></i>
                    <i class="text-in icon icon-close"></i>
                    <span>]</span>
                </a>
            </li>
        </ul>
        <div class="bar-right">
            <div class="share-component" data-sites="weibo,qq,wechat"
                data-mobile-sites="weibo,qq,qzone"></div>
        </div>
    </div>
</nav>

</main><footer class="footer" itemscope itemtype="http://schema.org/WPFooter">
<ul class="social-links">
    <li><a href="https://gitee.com/rulerLwx" target="_blank" title="gitee" data-toggle=tooltip data-placement=top >
            <i class="icon icon-gitee"></i></a></li>
    <li><a href="https://github.com/wolf-lea" target="_blank" title="github" data-toggle=tooltip data-placement=top >
            <i class="icon icon-github"></i></a></li>
</ul>
  <div class="copyright">
    &copy;2017  -
    2020
    <div class="publishby">
        Theme by <a href="https://github.com/xiaoheiAh" target="_blank"> xiaoheiAh </a>base on<a href="https://github.com/xiaoheiAh/hugo-theme-pure" target="_blank"> pure</a>.
    </div>
  </div>
</footer>

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_SVG"></script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
            showMathMenu: false, //disables context menu
            tex2jax: {
            inlineMath: [ ['$','$'], ['\\(','\\)'] ]
           }
    });
</script>


<script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script>
<script>
    window.jQuery || document.write('<script src="js/jquery.min.js"><\/script>')
</script>
<script type="text/javascript" src="https://cdn.staticfile.org/highlight.js/9.15.10/highlight.min.js"></script>
<script type="text/javascript" src="https://cdn.staticfile.org/highlight.js/9.15.10/languages/python.min.js" defer></script>
<script type="text/javascript" src="https://cdn.staticfile.org/highlight.js/9.15.10/languages/javascript.min.js" defer></script><script>
    hljs.configure({
        tabReplace: '    ', 
        classPrefix: ''     
        
    })
    hljs.initHighlightingOnLoad();
</script>
<script src="https://rulerLwx.gitee.io/js/application.min.bdeb64b910570b6c41badc6a05b7afb0c8ad9efd8525de3c7257d59e786326a3.js"></script>
<script src="https://rulerLwx.gitee.io/js/plugin.min.51ff8c7317566f82259170fa36e09c4493adc9b9378b427a01ad3f017ebac7dd.js"></script>

<script>
    (function (window) {
        var INSIGHT_CONFIG = {
            TRANSLATION: {
                POSTS: 'Posts',
                PAGES: 'Pages',
                CATEGORIES: 'Categories',
                TAGS: 'Tags',
                UNTITLED: '(Untitled)',
            },
            ROOT_URL: 'https:\/\/rulerLwx.gitee.io',
            CONTENT_URL: 'https:\/\/rulerLwx.gitee.io\/searchindex.json ',
        };
        window.INSIGHT_CONFIG = INSIGHT_CONFIG;
    })(window);
</script>
<script type="text/javascript" src="https://rulerLwx.gitee.io/js/insight.min.a343cd9a5a7698336b28ef3a7c16a3a1b1d2d5fb17dc8ed04022bbe08cc5459073a15bdafa3a8a58cdd56080784bdd69fa70b1ae8597565c799c57ed00f0e120.js" defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.4.2/tocbot.min.js"></script>
<script>
    tocbot.init({
        
        tocSelector: '.js-toc',
        
        contentSelector: '.js-toc-content',
        
        headingSelector: 'h1, h2, h3',
        
        hasInnerContainers: true,
    });
</script>

<script src="https://cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/valine"></script>
<script type="text/javascript">
    var GUEST = ['nick', 'mail', 'link'];
    var meta = 'nick,mail';
    meta = meta.split(',').filter(function (item) {
        return GUEST.indexOf(item) > -1;
    });
    new Valine({
        el: '#vcomments',
        verify: null ,
        notify: null ,
        appId: 'IyAB0PSPRazTPDxitO1ddQ7O-gzGzoHsz',
        appKey: '5rBJTq4KidYF33eXwvRVhtEH',
        placeholder: 'enjoy~',
        avatar: 'mm',
        meta: meta,
        pageSize: '10' || 10,
        visitor: false 
});
</script>

  </body>
</html>
